package com.lcn.utils;// package org.itzixi.utils;
//
// import com.google.gson.*;
// import com.google.gson.reflect.TypeToken;
//
// import java.util.ArrayList;
// import java.util.List;
// import java.util.Map;
//
// public class GsonUtils {
//
//     /**
//      * 不用创建对象,直接使用Gson.就可以调用方法
//      */
//     private static Gson gson = null;
//
//     private static JsonParser jsonParser = null;
//
//     /**
//      * 判断gson对象是否存在了,不存在则创建对象
//      */
//     static {
//
//         if (gson == null) {
//             //gson = new Gson();
//             // 当使用GsonBuilder方式时属性为空的时候输出来的json字符串是有键值key的,显示形式是"key":null，而直接new出来的就没有"key":null的
// //            gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
//             GsonBuilder gsonBuilder = new GsonBuilder();
// //             JDK17中 Gson 不支持LocalDateTime转换，需要自定义适配器进行转换
// //             GsonBuilder gsonBuilder = new GsonBuilder().registerTypeAdapter(LocalDateTime.class, new LocalDateTimeAdapter());
//             gsonBuilder.setLenient();
//             gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss");
//             gson = gsonBuilder.create();
//         }
//
//         if(jsonParser == null ){
//             jsonParser = new JsonParser();
//         }
//     }
//
//     private GsonUtils() {}
//
//     /**
//      * json 转对象
//      * @param strJson
//      * @return
//      */
//     public static JsonObject string2Object(String strJson) {
//         return jsonParser.parse(strJson).getAsJsonObject();
//     }
//
//
//     /**
//      * 将对象转成json格式
//      * @param object
//      * @return String
//      */
//     public static String object2String(Object object) {
//         String gsonString = null;
//         if (gson != null) {
//             gsonString = gson.toJson(object);
//         }
//         return gsonString;
//     }
//
//     /**
//      * 将json转成特定的cls的对象
//      * @param gsonString
//      * @param cls
//      * @return
//      */
//     public static <T> T stringToBean(String gsonString, Class<T> cls) {
//         T t = null;
//         if (gson != null) {
//             //传入json对象和对象类型,将json转成对象
//             t = gson.fromJson(gsonString, cls);
//         }
//         return t;
//     }
//
// //    public static <T> T stringToBean2(String gsonString, Class<T> cls) {
// //
// //        JsonParser jsonParser = new JsonParser();
// //        JsonObject jsonObject = jsonParser.parse(gsonString).getAsJsonObject();
// //
// //        T t = null;
// //        if (gson != null) {
// //            //传入json对象和对象类型,将json转成对象
// //            t = gson.fromJson(jsonObject, cls);
// //        }
// //        return t;
// //    }
//
//     /**
//      * json字符串转成list
//      * @param gsonString
//      * @param cls
//      * @return
//      */
//     public static <T> List<T> stringToList(String gsonString, Class<T> cls) {
//         List<T> list = null;
//         if (gson != null) {
//             //根据泛型返回解析指定的类型,TypeToken<List<T>>{}.getType()获取返回类型
//             list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
//             }.getType());
//         }
//         return list;
//     }
//
//     public static <T> List<T> stringToListAnother(String gsonString, Class<T> cls) {
//         List<T> list = new ArrayList<>();
//         JsonArray jsonArray = new JsonParser().parse(gsonString).getAsJsonArray();
// //        Gson gson = new Gson();
//         for (JsonElement jsonElement : jsonArray) {
//             list.add(gson.fromJson(jsonElement,cls));
//         }
//         return list;
//     }
//
//     /**
//      * json字符串转成list中有map的
//      * @param gsonString
//      * @return
//      */
//     public static <T> List<Map<String, T>> stringToListMaps(String gsonString) {
//         List<Map<String, T>> list = null;
//         if (gson != null) {
//             list = gson.fromJson(gsonString,
//                     new TypeToken<List<Map<String, T>>>() {
//                     }.getType());
//         }
//         return list;
//     }
//
//     /**
//      * json字符串转成map的
//      * @param gsonString
//      * @return
//      */
//     public static <T> Map<String, T> stringToMaps(String gsonString) {
//         Map<String, T> map = null;
//         if (gson != null) {
//             map = gson.fromJson(gsonString, new TypeToken<Map<String, T>>() {
//             }.getType());
//         }
//         return map;
//     }
//
//     public static String jsonElementAsString(JsonElement jsonElement) {
//         return jsonElement == null ? null : jsonElement.getAsString();
//     }
//
//     public static Integer jsonElementAsInt(JsonElement jsonElement) {
//         return jsonElement == null ? null : jsonElement.getAsInt();
//     }
//
//
// }